package Cal;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class Cpanel implements ActionListener
{
    JFrame win;
    JTextArea txt;
    JButton[] a;
    //errorb cw;
    public Cpanel()
    {
        //cw=new errorb();
        win=new JFrame("计算器");
        win.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        win.setSize(300, 450);
        win.setResizable(false);
        Container winc=win.getContentPane();
        winc.setLayout(new GridLayout(3,1,5,5));
        txt=new JTextArea();
        txt.setEditable(false);
        txt.setFont(new Font("楷体",Font.BOLD,30));
        JScrollPane display = new JScrollPane(txt);
        winc.add(display);
        a=new JButton[20];
        Container win1=new Container();
        win1.setLayout(new GridLayout(0,5));
        Container win2=new Container();
        win2.setLayout(new GridLayout(0,5));
        Container[] wina=new Container[20];
        for(int i=1;i<=18;i++)
        {
            wina[i]=new Container();
            wina[i].setLayout(new GridLayout(2,1));
        }
        a[16]=new JButton(".");
        a[17]=new JButton("=");
        for(int i=0;i<=9;i++)
        {
            a[i]=new JButton(i+"");
        }
        a[10]=new JButton("+");
        a[11]=new JButton("-");
        a[12]=new JButton("*");
        a[13]=new JButton("/");
        a[14]=new JButton("(");
        a[15]=new JButton(")");
        a[18]=new JButton("←");
        a[19]=new JButton("C");
        for(int i=0;i<=19;i++)
        {
            a[i].addActionListener(this);
            a[i].setFont(new Font("宋体",Font.BOLD,22));
        }
        wina[1].add(a[1]);
        wina[1].add(a[4]);
        wina[2].add(a[2]);
        wina[2].add(a[5]);
        wina[3].add(a[3]);
        wina[3].add(a[6]);
        wina[4].add(a[10]);
        wina[4].add(a[11]);
        wina[5].add(a[7]);
        wina[5].add(a[14]);
        wina[6].add(a[8]);
        wina[6].add(a[0]);
        wina[7].add(a[9]);
        wina[7].add(a[15]);
        wina[8].add(a[12]);
        wina[8].add(a[13]);
        wina[9].add(a[16]);
        wina[9].add(a[17]);
        wina[10].add(a[18]);
        wina[10].add(a[19]);
        win1.add(wina[9]);
        win2.add(wina[10]);
        win1.add(wina[1]);
        win1.add(wina[2]);
        win1.add(wina[3]);
        win1.add(wina[4]);
        win2.add(wina[5]);
        win2.add(wina[6]);
        win2.add(wina[7]);
        win2.add(wina[8]);
        winc.add(win1);
        winc.add(win2);
        win.setVisible(true);
    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getActionCommand().equals("="))
        {
            try {
                String st=txt.getText();
                for(int i=st.length()-1;i>=0;i--)
                {
                    if(st.charAt(i)=='\n')
                    {
                        st= Calculator.jisuan(st.substring(i+1));
                        break;
                    }
                    if(i==0)
                    {
                        st= Calculator.jisuan(st);
                        break;
                    }
                }
                st=txt.getText()+"=\r\n" +st;
                txt.setText(st);
            }
            catch (Exception e2)
            {
                //cw.bcwin.setVisible(true);
            }
        }
        else if(e.getActionCommand().equals("C"))
        {
            txt.setText("");
        }
        else if(e.getActionCommand().equals("←"))
        {
            txt.setText(txt.getText().substring(0, txt.getText().length()-1));
        }
        else
        {
            String c=(String) e.getActionCommand();
            txt.setText(txt.getText()+c);
        }
    }
}